/*
 * CLASS: User.java
 */

package model;

import java.io.Serializable;

/**
 *
 * @author Samuele Mattiuzzo
 */
public class User implements Serializable{

    protected int uId;
    protected String username;
    protected String password;
    private boolean canRent = true;

    /**
     * Costruttore pubblico della classe user
     * @param u id
     * @param n username
     * @param p password
     */
    public User(int u, String n, String p){
        uId=u;
        username=n;
        password=p;
    }

    /**
     * Ritorna id dell'utente
     * @return uId intero
     */
    public int getId(){
        return uId;
    }

    /**
     * Ritorna username
     * @return username stringa
     */
    public String getUsername(){
        return username;
    }

    /**
     * Ritorna password
     * @return password stringa
     */
    public String getPassword(){
        return password;
    }
     /**
     * Metodo che autentica l'utente
     * @param check la password inserita dall'utente
     * @return la vera password dell'utente
     */
    public boolean userAuth(String check){
        return password.equals(check);
    }

     /**
     * Metodo che autentica l'utente come amministratore della biblioteca
     * @return true se e' amministratore (uid = 0 per semplicità)
     */
    public boolean isSuperuser(){
        if(uId==0)
            return true;
        return false;
    }


    /**
     * Metodo che cerca un utente
     * @param s il nome dell'utente
     * @return true o false se trova o meno
     */
    public boolean getUser(String s){
        return (username.equals(s));
    }

    /**
     * Cambia lo stato dell'utente (può / non può noleggiare)
     */
    public void setBlock(){
        canRent = false;
    }

    public void setUnlock(){
        canRent = true;
    }

    /**
     * Controlla se un utente può noleggiare
     * @return boolean true/false se può o non può noleggiare
     */
    public boolean canRent(){
        return canRent;
    }
}
